//
//  DataStorageTool.cpp
//  firebkball
//
//  Created by ren jian on 18/5/28.
//
//

#include "DataStorageTool.h"
#include "MyConst.h"
#include "FileEncAndDec.h"

static long strToLong(const char *instr)
{
    long  retval;
    retval = 0;
    for (; *instr; instr++) {
        retval = 10*retval + (*instr - '0');
    }
    return retval;
}

bool DataStorageTool::getBool(std::string keyStr){
    UserDefault *uDefault =UserDefault::getInstance();
    std::string sstr = uDefault->getStringForKey(FileEncAndDec::encStr(keyStr).c_str());
    return FileEncAndDec::decBool(sstr);
}

void  DataStorageTool::saveBool(std::string keyStr, bool val){
    UserDefault *uDefault =UserDefault::getInstance();
    uDefault->setStringForKey(FileEncAndDec::encStr(keyStr).c_str(), FileEncAndDec::encBool(val));
}

int  DataStorageTool::getIntValue(std::string key){
    std::string encGem =UserDefault::getInstance()->getStringForKey(FileEncAndDec::encStr(key).c_str(),"0");
    return FileEncAndDec::decInt(encGem);
}

void   DataStorageTool::saveIntValue(std::string key,int value){
    UserDefault *ud =UserDefault::getInstance();
    std::string saveStr = FileEncAndDec::encInt(value);
    ud->setStringForKey(FileEncAndDec::encStr(key).c_str(), saveStr);
}

long  DataStorageTool::getLongValue(std::string key){
    UserDefault *uDefault =UserDefault::getInstance();
    std::string sStr = uDefault->getStringForKey(FileEncAndDec::encStr(key).c_str(),"0");
    sStr =FileEncAndDec::decStr(sStr);
    return strToLong(sStr.c_str());
}

void  DataStorageTool::saveLongValue(std::string key,long value){
    UserDefault *uDefault = UserDefault::getInstance();
    std::string saveStr = FileEncAndDec::encLong(value);
    uDefault->setStringForKey(FileEncAndDec::encStr(key).c_str(), saveStr);
}

std::string   DataStorageTool::getStringValue(std::string key){
    UserDefault *uDefault=UserDefault::getInstance();
    std::string sStr = uDefault->getStringForKey(FileEncAndDec::encStr(key).c_str(),"");
    return FileEncAndDec::decStr(sStr);
}

void   DataStorageTool::saveStringValue(std::string key,std::string value){
    UserDefault *uDefault=UserDefault::getInstance();
    std::string saveStr = FileEncAndDec::encStr(value);
    uDefault->setStringForKey(FileEncAndDec::encStr(key).c_str(), saveStr);
}

void  DataStorageTool::flushDT(){
    UserDefault::getInstance()->flush();
}